package br.ufrj.dcc.ad.estatistica;

import java.util.List;

public class GeradorEstatistica {
	public double media(List<? extends Number> amostras){
		double media = 0.0;
		
		for(Number amostra : amostras){
			media += amostra.doubleValue() / amostras.size();
		}
		
		return media;
	}
	
	public double desvioPadrao(List<? extends Number> amostras, double media){
		double desvioPadrao = 0.0;
		
		for(Number amostra : amostras){
			desvioPadrao += Math.pow(amostra.doubleValue() - media, 2) / (amostras.size() - 1);
		}
		
		return desvioPadrao;
	}
	
	public double intervaloDeConfiancaParaMenos(double media, double desvioPadrao, double qtdAmostras){
		return media - (1.96 * desvioPadrao) / Math.sqrt(qtdAmostras);
	}
	
	public double intervaloDeConfiancaParaMais(double media, double desvioPadrao, double qtdAmostras){
		return media + (1.96 * desvioPadrao) / Math.sqrt(qtdAmostras);
	}
}
